package com.gxc.number;

import java.util.Scanner;

/**
 * 小明从糖果盒中随意抓一把糖果，每次小明会取出一半的糖果分给同学们。
 *
 * 当糖果不能平均分配时，小明可以选择从糖果盒中（假设盒中糖果足够）取出一个糖果或放回一个糖果。
 *
 * 小明最少需要多少次（取出、放回和平均分配均记一次），能将手中糖果分至只剩一颗。
 *
 * 输入描述
 * 抓取的糖果数（<10000000000）：15
 *
 * 输出描述
 * 最少分至一颗糖果的次数：5
 */
public class DistributeCandies {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.close();

        int res = 0;
        while (n > 1) {
            if (n == 3) {
                n = n-1;
                res++;
                n = n / 2;
                res++;
            } else {
                if (n % 2 == 0) {
                    n = n / 2;
                } else {
                    res++;
                    if ((n + 1) % 4 == 0) {
                        n = (n + 1)/2;
                    } else {
                        n = (n - 1)/2;
                    }
                }
                res++;
            }
        }
        System.out.println(res);
    }
}
